// 这个文件是关于api请求抽离的js文件, 定义多个函数, 对应也给页面调用函数即可
// 封装请求的时候建议 req+请求方式+功能名
// axios 可以配置基地址(不要每次都写重复的基础路径), 只要设置了这句话, 发送请求的时候会默认拼接上基地址
// 全局修改axios配置
axios.defaults.baseURL = 'http://api-breakingnews-web.itheima.net'
// 不管是请求拦截器还是响应拦截器,有两个函数, 函数一是正确响应执行的函数,函数2错误响应执行的函数
// 添加响应拦截器
axios.interceptors.response.use(function (response) {
	// 对响应数据做点什么 响应拦截器中response就是当前这次请求响应的结果,response中的data就是要的message和status所在的对象
	console.log('响应拦截器执行了', response)
	const {data: {message, status}} = response
	if (status === 0) {
		layer.msg(message)
	}
	return response  // 将响应的数据交给客户端
}, function (error) {
	// 对响应错误做点什么
	return Promise.reject(error)
})
// 封装注册的api接口
const reqPostRegister = (obj) => {
 return	axios({
		method: 'post',
		url: `/api/reguser`,
		// post请求携带参数使用data get请求携带参数params
		data: handleDataFormat(obj) // 直接调用工具函数处理数据得到处理数据的结果
	})
}
// 封装登录的api接口
// 现在遇到的问题 在then函数中拿到响应的结果了,但是结果给不到reqPostLogin成返回值
/* const reqPostLogin = (obj, cb) => {
 return	axios({
		method: 'post',
		url: 'http://api-breakingnews-web.itheima.net/api/login',
		// post请求携带参数使用data get请求携带参数params
		data: handleDataFormat(obj)
	}).then(res=> {
	  cb(res)
		console.log(res)
	})
} */
const reqPostLogin = (obj) => {
 return	axios({
		method: 'post',
		url: `/api/login`,
		// post请求携带参数使用data get请求携带参数params
		data: handleDataFormat(obj)
	})
}


// 封装通用的函数 
// 1. 主要业务逻辑封装
// 2. 处理的数据 考虑到参数的问题
// 3. 处理的数据别人要用必须加返回值